Исключение при создании объекта PosExplorer Microsoft PointOfService во время теста NUnit - PullRequest
1 голос
/ 25 июня 2019

Я пытался протестировать драйвер POS, написанного на C #, для которого требуется .NET 3.5.Я использую NUnit для VS17, потому что у меня есть код консольного приложения, написанный на C # с некоторым функциональным тестом драйвера.

Он работает хорошо, но когда я пытаюсь вызвать тот же метод из NUnit, возникает исключение.

Это рабочий код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FiscalReceipt.Library;

namespace FiscalReceiptMain
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Setting [STAThread] ");
            FiscalReceipt.Library.FiscalReceipt mc = new FiscalReceipt.Library.FiscalReceipt();
            int output = mc.testFiscalReceiptClass();
            Console.WriteLine("Number of exception = {0}", output);
            System.Environment.Exit(0);
        }
    }
}

Проблема, конечно, внутри testFiscalReceiptClass:

namespace FiscalReceipt.Library
{
    public class FiscalReceipt
    {
        private PosExplorer posExplorer;
        private PosCommon posCommonFP;

        // Exception counter
        public static int NumExceptions = 0;
        public FiscalReceipt()
        {
            posExplorer = null;
            posCommonFP = null;
        }

        // Method to test the original FiscalReceiptClass
        public int testFiscalReceiptClass()
        {
            try
            {
                // Console.WriteLine("Initializing PosExplorer ");
                posExplorer = new PosExplorer();
            }
            catch (Exception e)
            {
                // ...    
            }
        }
    }
}

Если я создаю posExplorer объект из консолиВ приложении нет проблем, но когда я пытаюсь отладить NUnit, возникает исключение:

{"Инициализатор типа 'Microsoft.PointOfService.Management.Explorer' вызвал исключение."} InnerException {"ЭтоМетод явно использует политики безопасности из устаревшего доступа к коду в .NET Framework. Чтобы включить политику безопасности из доступа к коду в целях совместимости, используйте параметр конфигурации NetFx40_LegacySecurityPolicy. Для получения дополнительной информации см. http://go.microsoft.com/fwlink/?LinkID=155570. "} System.Exception {System.NotSupportedException}

enter image description here

Кажется, что Nunit - это 64-битная библиотека, котораяЭто несовместимо с моей DLL.Я потратил более 24 рабочих часов, чтобы попробовать много решений, но сейчас я заблокирован.

Предложения?

...